package com.itheima.googleplay9.adapter;

import android.view.View;
import android.view.ViewGroup;

import com.itheima.googleplay9.R;
import com.itheima.googleplay9.bean.CategoryInfo;
import com.itheima.googleplay9.global.GooglePlayApp;
import com.itheima.googleplay9.holder.BaseHolder;
import com.itheima.googleplay9.holder.CategoryInfoHolder;
import com.itheima.googleplay9.holder.CategoryTitleHolder;

import java.util.ArrayList;
import java.util.StringTokenizer;

/**
 * Created by lxj on 2016/5/25.
 */
public class CategoryAdapter extends BasicAdapter<Object>{
    public CategoryAdapter(ArrayList<Object> list) {
        super(list);
    }

    //定义条目的类型
    public static final int ITEM_TITLE = 0;//标题类型的item
    public static final int ITEM_INFO = 1;//小分类类型的item
    /**
     * 返回有几种条目类型
                * @return
        */
        @Override
        public int getViewTypeCount() {
            return 2;
    }

    /**
     * 返回指定position的item是什么类型的
     * @param position
     * @return
     */
    @Override
    public int getItemViewType(int position) {
        //根据数据类型判断属于哪种条目
        Object obj = list.get(position);
        if(obj instanceof String){
            //说明是title的数据
            return ITEM_TITLE;//返回title的条目类型
        }else {
            //说明是CategoryInfo类型的数据
            return ITEM_INFO;
        }
//        return super.getItemViewType(position);
    }

//    @Override
//    public View getView(int position, View convertView, ViewGroup parent) {
//        //1.获取当前postiion的条目类型
//        int itemViewType = getItemViewType(position);
//        //2.根据不同的条目类型，加载不同的布局，
//        switch (itemViewType){
//            case ITEM_TITLE://加载title类型的布局
//                if(convertView ==null){
//                    convertView = View.inflate(GooglePlayApp.context, R.layout.adapter_title,null);
//                }
//                //获取数据
//                Object data = list.get(position);
//                //设置数据
//
//                break;
//            case ITEM_INFO://加载info类型的布局
//                if(convertView ==null){
//                    convertView = View.inflate(GooglePlayApp.context, R.layout.adapter_title,null);
//                }
//                //获取数据
//                Object data = list.get(position);
//                //绑定数据
//                break;
//        }
//        return super.getView(position, convertView, parent);
//    }

    @Override
    protected BaseHolder<Object> getHolder(int position) {
        BaseHolder holder = null;
        //1.获取当前postiion的条目类型
        int itemViewType = getItemViewType(position);
        //2.根据不同的条目类型，加载不同的布局，
        switch (itemViewType){
            case ITEM_TITLE:
                //加载title类型的布局
                //获取数据
                String title = (String) list.get(position);
                //返回一个处理Title的holder
                holder = new CategoryTitleHolder();
                //设置数据
                holder.bindData(title);
                break;
            case ITEM_INFO://加载info类型的布局
                //获取数据
                CategoryInfo info = (CategoryInfo) list.get(position);
                //绑定数据
                //返回一个处理CategoryInfo的holder
                holder = new CategoryInfoHolder();
                holder.bindData(info);
                break;
        }
        return holder;
    }
}
